import requests
import json

# --- 配置参数 ---
URL = "http://172.16.30.81:30080/api/v1/chat/completions"
# 请务必核对您的 Bearer Token
BEARER_TOKEN = "f77a4129ca141c9caa12e481f2ea57cf"

# Headers
HEADERS = {
    "Authorization": f"Bearer {BEARER_TOKEN}",
    "Content-Type": "application/json"
}

# Payload (请求体)
# 首次测试时，我们建议将 "stream" 设置为 false，以排除流式处理引发的 400 错误
PAYLOAD = {
    "model": "测试",
    "stream": False,  # 关键：设置为 False 以获取完整 JSON 响应进行测试
    "messages": [
        {"role": "user", "content": "你是谁？"}
    ],
    "key": ""  # 保持原样，如果 API 文档要求，可能需要设置为 None 或特定值
}

# --- 执行请求 ---
try:
    print(f"尝试连接到: {URL}")
    response = requests.post(URL, headers=HEADERS, json=PAYLOAD)

    # 打印状态码
    print(f"\n--- API 响应状态码 ---")
    print(f"Status Code: {response.status_code}")

    # 检查是否成功
    if response.status_code == 200:
        print("\n--- API 调用成功！---")
        # 尝试解析并打印 JSON 响应
        try:
            print(json.dumps(response.json(), indent=4, ensure_ascii=False))
        except json.JSONDecodeError:
            print("注意：响应不是标准 JSON，可能是文本或流数据，内容如下：")
            print(response.text)
    else:
        # 如果状态码不是 200，打印错误信息
        print("\n--- API 调用失败（非200状态码）---")
        print(f"响应内容 (用于调试 400 错误):")
        # 尝试打印错误详情，通常在 text 中
        print(response.text)

except requests.exceptions.RequestException as e:
    print(f"\n--- 网络连接错误 ---")
    print(f"发生网络错误或连接超时: {e}")